iT邦幫忙

3

為什麼 C 語言中的 printf() 會多那個討人厭的 “f”?

  • 分享至 

  • xImage
  •  

[https://ithelp.ithome.com.tw/upload/images/20241224/20171038XuIHTKEwVc.png]

哈哈,這可是 50 年前的程式語言啊!

當時的 C 語言規範了很多我們現在習以為常的事情。而 printf 那個多餘的 "f",其實是用來表示這個函數是用來 列印格式化字串 的 — 這種功能,在現代語言裡幾乎是理所當然的。


printf 其實不是 C 的基礎函數

不過要講清楚,printf 並不是 C 語言的「基礎函數」。它其實是從一個 函式庫 引入的。

如果真的想用更簡單的名字?

這也意味著,如果你真的很想用更簡單的名字像是 print,你可以:

  1. 查看你匯入的函式庫,確認沒有名稱衝突的問題
  2. 修改 stdio 函式庫裡定義 printf 的地方,把它改成 print

但這樣做是非常不好的習慣!

函式庫的設計本來就是為了讓各種函式可以彼此協作、避免衝突。尤其是像 stdio 這種基礎函式庫,你亂改函數名稱的話,很可能會:

  • 搞壞幾乎所有其他的匯入功能
  • 讓你的整個專案 完全爆掉

總結

那個多出來的 "f",其實是有原因的。它在 C 的歷史和設計中,代表了一種精心規劃的功能性。如果覺得不順眼,其實只是我們現在習慣了更高階的語言罷了 😉!


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
1
dannychou0122
iT邦新手 5 級 ‧ 2024-12-25 09:49:36

println豈不是更礙眼的存在

0
望空
iT邦新手 1 級 ‧ 2024-12-25 15:45:07

這樣java的物件建立不就會讓你感到煩躁?

1
snoopy
iT邦新手 4 級 ‧ 2024-12-25 19:15:32

f代表format,表示他可以設定輸出“格式”

0
一級屠豬士
iT邦大師 1 級 ‧ 2024-12-25 23:23:59

使用 man, 查看手冊.

man 3 printf 

或是
https://man7.org/linux/man-pages/man3/fprintf.3.html

都會說明. 如 snoopy 大大有說到的 格式化 (format)

我要留言

立即登入留言